/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package appbastanteo1.controller;

import appbastanteo1.model.Representante;
import appbastanteo1.*;
import java.util.ArrayList;

/**
 *
 * @author lacuracao
 */
public class AdmRepresentantes {

    private ArrayList<Representante> representante;

    public AdmRepresentantes(){
        representante = new ArrayList<Representante>();
    }

    public void registrarRepresentante(String tipoDocumento, String nroDocumento, String nombres,
            String apellidos, String cargo, String grupoBastanteo) throws BusinessException{

        verificarDatosRequeridos(tipoDocumento, nroDocumento, nombres, apellidos, cargo, grupoBastanteo);
        validaDuplicado(tipoDocumento, nroDocumento);

        Representante nvoRepresentante = new Representante(tipoDocumento, nroDocumento, nombres, apellidos, cargo, grupoBastanteo);
        this.representante.add(nvoRepresentante);

    }

    public Representante obtenerRepresentante(String nroDocumento){
        for (Representante rep : this.representante) {
            if (rep.getNroDocumento().equals(nroDocumento)) {
                return rep;
            }
        }
        return null;
    }

    private boolean representanteExiste(String tipo, String numero){
        for(Representante rep : this.representante){
            if(rep.getTipoDocumento().equals(tipo) && rep.getNroDocumento().equals(numero)){
                return true;
            }
        }
        return false;
    }

    private void validaDuplicado(String tipo, String numero) throws BusinessException{
        String mensaje = "";
        if(representanteExiste(tipo, numero)){
            mensaje += "El representante ya existe";
            throw new BusinessException(mensaje);
        }
    }

    private void verificarDatosRequeridos(String tipoDocumento, String nroDocumento, String nombres,
            String apellidos, String cargo, String grupoBastanteo) throws BusinessException{

        String mensaje = "";
        if(tipoDocumento.equals("")){
            mensaje += "Tipo de Documeto no puede ser vacio\n";
        }
        if(nroDocumento.equals("")){
            mensaje += "Nro de Documeto no puede ser vacio\n";
        }
        if(nombres.equals("")){
            mensaje += "Nombre no puede ser vacio\n";
        }
        if(apellidos.equals("")){
            mensaje += "Apellidos no puede ser vacio\n";
        }
        if(cargo.equals("")){
            mensaje += "Cargo no puede ser vacio\n";
        }
        if(grupoBastanteo.equals("")){
            mensaje += "Grupo de Bastanteo no puede ser vacio";
        }
        if(!mensaje.equals("")){
            throw new BusinessException(mensaje);
        }
        
    }

    public int obtenerNumeroRepresentante() {
        return getRepresentante().size();
    }

    public void eliminarRespresentante(String nroDocumento) {
        Representante rpr = obtenerRepresentante(nroDocumento);
        if (rpr != null)
            getRepresentante().remove(rpr);
    }



    /**
     * @return the representante
     */
    public ArrayList<Representante> getRepresentante() {
        return representante;
    }

    /**
     * @param representante the representante to set
     */
    public void setRepresentante(ArrayList<Representante> representante) {
        this.representante = representante;
    }

}
